import unittest

"""
 @author adun
 @date 2020/10/25 23:00
 元组（Tuple）是一种有序且不可更改的集合。允许重复的成员。【也不能够添加】
"""


class MyTestCase(unittest.TestCase):
    def test_something(self):
        self.assertEqual(True, False)

    # 创建元组
    def test_create_tuple(self):
        thistuple=("apple","banana","cherry")
        print(thistuple)

    # 打印元组中的第二个项目：
    def test_print_second(self):
        thistuple = ("apple", "banana", "cherry")
        print(thistuple[1])
    #####################之前的都与list一致，下面是区别之处###############################

    # 元组一旦创建，您就无法向其添加项目。元组是不可改变的。
    # 您无法向元组添加项目：
    def test_insert(self):
        thistuple = ("apple", "banana", "cherry")
        thistuple[3] = "orange"  # 会引发错误 TypeError: 'tuple' object does not support item assignment
        print(thistuple)

    # 创建有一个项目的元组
    # 如需创建仅包含一个项目的元组，您必须在该项目后添加一个逗号，否则
    # Python
    # 无法将变量识别为元组。
    def test_one_element(self):
        thistuple = ("apple",) # <class 'tuple'>
        print(type(thistuple))

        # 不是元组
        thistuple = ("apple") # <class 'str'>
        print(type(thistuple))

    # 删除项目
    # 注释：您无法删除元组中的项目。 TypeError: 'tuple' object doesn't support item deletion
    # 元组是不可更改的，因此您无法从中删除项目，但您可以完全删除元组：
    def test_del_one(self):
        thistuple = ("apple", "banana", "cherry")
        del thistuple[0]
        print(thistuple)

    # UnboundLocalError: local variable 'thistuple' referenced before assignment
    def test_del_whole(self):
        thistuple = ("apple", "banana", "cherry")
        del thistuple
        print(thistuple)# 这会引发错误，因为元组已不存在。

    # tuple() 构造函数
    # 也可以使用 tuple() 构造函数来创建元组。
    def test_create_tuple_by_tuple(self):
        thistuple = tuple(("apple", "banana", "cherry"))  # 请注意双括号
        print(thistuple)


if __name__ == '__main__':
    unittest.main()
